/*
    Estado           Metodo
    P                listarArticulosFiltro - Diego
 */

package gestores.administracion;

import dal.ArticuloDAL;

import excepciones.AvwException;

import java.util.ArrayList;
import java.util.HashMap;

import java.util.logging.Level;

import java.util.logging.Logger;

import negocio.ArticuloCampania;
import negocio.ArticuloWeb;
import negocio.CampaniaWeb;
import negocio.CategoriaWeb;

import util.Utiles;

public class GestorBusquedaArticulo {

    static final Logger logger = 
        Utiles.iniciarLogger("GestorBusquedaArticulo", false);

    /**
     * @param String camCodigo
     * @param String catCodigo
     * @param String filtro, nombre de articulos
     * @return array de HashMap con Articulo  con 
     *          los siguientes datos de los articulos: artCodigo y artNombre
     */
    public static ArrayList<HashMap> listarArticulosFiltro(String camCodigo, 
                                                           String catCodigo, 
                                                           String filtro)throws NullPointerException {
        ArrayList<HashMap> arr = new ArrayList<HashMap>();
        HashMap articuloHash = new HashMap();
        ArrayList<ArticuloCampania> articulos = null;
        ArticuloWeb articuloWeb = new ArticuloWeb();
        articuloWeb.setArtNombre(filtro);

        // Obtengo todos los articulos
        try {
            articulos = 
                    ArticuloDAL.listarArticulosPorCategoriaFiltro(new CampaniaWeb(camCodigo), 
                                                                  articuloWeb, 
                                                                  new CategoriaWeb(catCodigo));
            for (ArticuloCampania ac: articulos) {
                articuloHash.put("artCodigo", 
                                 ac.getArcArticulo().getArtCodigo());
                articuloHash.put("artNombre", 
                                 ac.getArcArticulo().getArtNombre());
                arr.add(articuloHash);
            }

        } catch (AvwException e) {
            logger.log(Level.SEVERE, e.getMensaje(), e);
        }

        return arr;
    }


}
